![GuardDutyで検出結果をS3へエクスポートする際に指定するKMSキーは別リージョンのKMSキーを指定できますか?](https://devio2023-media.developers.io/wp-content/uploads/2023/08/aws-key-management-service.png)
GuardDutyで検出結果をS3へエクスポートする際に指定するKMSキーは別リージョンのKMSキーを指定できますか?
困っていること
GuardDuty で複数のリージョンについて監視を行っています。検出結果を S3 へエクスポートしたいのですが、リージョンごとに KMS キーを作成するのは管理が煩雑になりそうなので避けたいです。複数のリージョンから、単一リージョンの KMS キーを指定することはできますか?
どう対応すればいいの?
複数のリージョンから、単一リージョンの KMS キーを指定することは可能です。
やってみる
東京リージョンに KMS キーを作成し、キーポリシーの "Statement" の部分に下記の設定を追加します。AccountID
KMSKeyId
は適宜置き換えてください。
{ "Sid": "AllowGuardDutyKey", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "kms:GenerateDataKey", "Resource": "arn:aws:kms:ap-northeast-1:AccountID:key/KMSKeyId" }
東京リージョン S3 バケットを作成し、バケットポリシーとして、下記を設定します。myBucketName
optional prefix
は適宜置き換えてください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGuardDutygetBucketLocation", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:GetBucketLocation", "Resource": "arn:aws:s3:::myBucketName" }, { "Sid": "AllowGuardDutyPutObject", "Effect": "Allow", "Principal": { "Service": "guardduty.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::myBucketName/optional prefix/*" }, { "Sid": "DenyNon-HTTPS", "Effect": "Deny", "Principal": "*", "Action": "s3:*", "Resource": "arn:aws:s3:::myBucketName/optional prefix/*", "Condition": { "Bool": { "aws:SecureTransport": "false" } } } ] }
バージニア北部リージョンで GuardDuty を有効にします。
有効になったら、左ペインから設定を選択します。
その後、出力先に先ほど作成した東京リージョン S3 バケットを選択し、KMS キーに先ほど作成した KMS キーのエイリアスを指定します。
正常に設定されたことを確認しました。
注意点
KMS キーとエクスポート先の S3 バケットは同一リージョンに存在する必要があります。